package fun.cyhgraph.controller.admin;

import fun.cyhgraph.result.Result;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.web.bind.annotation.*;

/**
 * 店铺管理
 */
// 注意：管理端能查看所有订单信息，而用户端只能根据userId查询到自己的历史订单信息
@RestController("adminShopController")  // 重命名，防止两个端admin、user的ShopController冲突
@RequestMapping("/admin/shop")
@Slf4j
public class ShopController {
    public static final String KEY = "SHOP_STATUS";  // 定义缓存的key

    @Autowired
    private RedisTemplate redisTemplate;

    /**
     * 修改营业状态
     * @param status 营业状态
     * @return
     */
    @PutMapping("/{status}")                       // @PathVariable 获取路径中的参数
    public Result setStatus(@PathVariable Integer status){
        log.info("修改切换店铺营业状态，{}", status == 1 ? "营业中" : "打烊中");
        redisTemplate.opsForValue().set(KEY, status);   // 将数据保存到Redis中
        return Result.success();
    }

    /**
     * 获取营业状态
     * @return
     */
    @GetMapping("/status")
    public Result<Integer> getStatus(){
        Integer status = (Integer) redisTemplate.opsForValue().get(KEY); // 从Redis中获取数据
        // 解决空指针异常
        if (status == null) {
            status = 1; // 默认营业中
            redisTemplate.opsForValue().set(KEY, status); // 设置默认值到Redis
            log.info("使用默认店铺状态：营业中");
        }
        log.info("获取到店铺状态：{}", status == 1 ? "营业中" : "打样中");
        return Result.success(status);
    }
}
